package com.fkdx.datasource;

import com.zaxxer.hikari.HikariDataSource;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * 数据源属性
 * 可以添加多个数据源
 *
 * 在 DataSourceConfig 中完成注册
 * DataSourceAspect 在 SQL 执行的时候通过 AOP 扫描拦截 @TargetDataSource 注解完成数据源动态切换，并且放入 ThreadLocal
 * DynamicDataSource 实现 Spring 接口，用于真正的动态获取 ThreadLocal 中放入的数据源
 */
@Data
@Component
@PropertySource("classpath:database-config.properties")
@ConfigurationProperties(prefix = "fkdx")
class DBProperties {

    private HikariDataSource master;

    private HikariDataSource slave;

}
